package negocio;

import java.io.Serializable;
import java.sql.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;


@Entity
@Table(name = "solicitudesCotizacion")
public class SolicitudCotizacion implements Serializable{

	@Id
	private Integer nroSolicitud;
	@ManyToOne
	private Cliente cliente;
	private Date fecha;
	@OneToMany(fetch=FetchType.EAGER,  cascade =  CascadeType.ALL)
	@JoinColumn(name = "solicitudCotizacion")
	private Set<SolicitudCotizacionComponente> componentes = new HashSet<SolicitudCotizacionComponente>();
	@ManyToOne
	private ODV odv;
	public SolicitudCotizacion(int nroSolicitud, Date fecha, Cliente c) {
		this.nroSolicitud = nroSolicitud;
		this.cliente = c;
		this.fecha = fecha;
	}

	public void generarSolicitudCotizacionComponente(Rodamiento r, int cantidad) {
		this.componentes.add(new SolicitudCotizacionComponente(r, cantidad));
	}

	
	

	public ODV getOdv() {
		return odv;
	}

	public void setOdv(ODV odv) {
		this.odv = odv;
	}

	public Integer getNroSolicitud() {
		return nroSolicitud;
	}

	public void setNroSolicitud(Integer nroSolicitud) {
		this.nroSolicitud = nroSolicitud;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public Set<SolicitudCotizacionComponente> getComponentes() {
		return componentes;
	}

	public void setComponentes(Set<SolicitudCotizacionComponente> componentes) {
		this.componentes = componentes;
	}
	
public SolicitudCotizacion() {
	// TODO Auto-generated constructor stub
}

}
